<?php
class Clound_CacheFile
{
    public $cache;
    protected $_config;

    /**
     *
     * @param  array $config
     * @return void
     */
    public function __construct($config=array())
    {

        if ($config) {
            $this->_config = $config;
        }
        else $this->_config = $this->configDefault();
    }
    public function cache(){
        $config = $this->_config;
        return Zend_Cache::factory('Core', 'File', $config['frontendParam'], $config['backendParam']);
    }
    public function _mkdir($pathname) {
        $arrPath = explode('/', $pathname);
        $sPath = '';
        foreach ($arrPath as $key => $value) {
            $sPath .= $value . '/';
            if (!file_exists($sPath)) {
                mkdir($sPath, 0777);
            }
        }
        return $sPath;
    }

    public function configDefault() {
        $pFilePath = './public/cache';
        if (!is_dir($pFilePath)) {
            $this->_mkdir($pFilePath);
        }
        $frontendParam = array(
            'lifetime' => null, //thời gian tồn tại của cache, giá trị null nghĩa là thời gian tồn tại vô hạn
            'automatic_serialization' => 'true' //cho phép tự động serialize với các kiểu dữ liệu phức tạp
        );
        $backendParam = array(
            'cache_dir' => $pFilePath//
        );
        return array('frontendParam'=>$frontendParam,'backendParam'=>$backendParam);
        
    }

    public function getList($name) {
        $cache = $this->cache();
        return $cache->load($name);
    }
}
